package vip.liux.contracts.models.pay;

import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import vip.liux.domain.entities.auditing.CreationAuditedEntity;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Getter
@Setter
@Entity
@Table(name = "pay_demo_order")
@Accessors(chain = true)
public class PayDemoOrder extends CreationAuditedEntity<Long> {
    /**
     * 用户编号
     */
    private Long userId;
    /**
     * 商品编号
     */
    private Long spuId;
    /**
     * 商品名称
     */
    private String spuName;
    /**
     * 价格，单位：元
     */
    private BigDecimal price;

    // ========== 支付相关字段 ==========

    /**
     * 是否支付
     */
    private Boolean payStatus;
    /**
     * 支付订单编号
     * <p>
     * 对接 pay-module-biz 支付服务的支付订单编号，即 PayOrderDO 的 id 编号
     */
    private String payOrderNo;
    /**
     * 付款时间
     */
    private LocalDateTime payTime;
    /**
     * 支付渠道
     * <p>
     * 对应 PayChannelEnum 枚举
     */
    private String payChannelCode;

    // ========== 退款相关字段 ==========
    /**
     * 支付退款单号
     */
    private String payRefundNo;
    /**
     * 退款金额，单位：元
     */
    private BigDecimal refundPrice;
    /**
     * 退款完成时间
     */
    private LocalDateTime refundTime;
}
